package Class.base;

import java.util.ArrayList;
import java.util.Arrays;

public class Main10 {
    public static void main(String[] args) {
        // 定义数组，存储3个元素
//        int[] arr = new int[3];
//        //数组索引进行赋值
//        arr[0] = 5;
//        arr[1] = 6;
//        arr[2] = 7;
//        //输出3个索引上的元素值
//        System.out.println(arr[0]);
//        System.out.println(arr[1]);
//        System.out.println(arr[2]);
//        //定义数组变量arr2，将arr的地址赋值给arr2
//        int[] arr2 = arr;
//        arr2[1] = 9;
//        System.out.println(arr[1]);

        // 定义二维数组
        String[][] arrList2 = new String[][]{{"倪"}, {"永"}, {"康"}};
        // 简写
        String[][] arrList3 = {{"张无忌", "哈哈哈哈"}, {"GAIAG", "ZNIANIN"}};
        System.out.println(Arrays.deepToString(arrList2));
        System.out.println(arrList2[0][0]);
        System.out.println(Arrays.deepToString(arrList3));

        int[][] arrList4 = {{3, 5, 8}, {12, 9}, {7, 0, 6, 4}};
        System.out.println(Arrays.deepToString(arrList4));
        int arrAllNum = 0;
        for (int[] item : arrList4) {
            for (int item2 : item) {
                arrAllNum += item2;
            }
        }
        System.out.println("表格值的和" + arrAllNum);

        // 动态创建数组
        int[][] arrList5 = new int[10][5];
        System.out.println(Arrays.deepToString(arrList5));

        // 打印出数组中的偶数
        // 固定数组
        int[] arrList6 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        // 动态数组
        ArrayList<Integer> arrayList7 = new ArrayList<Integer>();
        for (int item : arrList6) {
            if (item % 2 == 0) {
                arrayList7.add(item);
            }
        }
        System.out.println(arrayList7);
        for (int item : arrayList7) {
            System.out.println(item);
        }
        // 找出这段数组的最大值
        int[] arrList8 = {1, 50, 3, 4, 5, 6, 7, 8, 9, 10};
        int maxNumber = 0;
        int indexNumber = 0;
//        for (int item : arrList8) {
//            if (maxNumber < item) {
//                maxNumber = item;
//            }
//        }
        // 用fori重写
        for (int i = 0; i < arrList8.length; i++) {
            if (maxNumber < arrList8[i]) {
                maxNumber = arrList8[i];
                indexNumber = i;
            }
        }
        System.out.println("最大的数字" + maxNumber + "他的下标是" + indexNumber);

//        （1）在编程竞赛中，有10位评委为参赛的选手打分，分数分别为：5，4，6，8，9，0，1，2，7，3
//        （2）求选手的最后得分（去掉一个最高分和一个最低分后其余8位评委打分的平均值）
        int[] arrList9 = {5, 4, 6, 8, 9, 0, 1, 2, 7, 3};
        ArrayList<Integer> arrayList10 = new ArrayList<Integer>();
        int max = 0;
        int min = 0;
        for (int i = 0; i < arrList9.length; i++) {
            if (max < arrList9[i]) {
                max = arrList9[i];
            }
            if (min > arrList9[i]) {
                min = arrList9[i];
            }
        }
        System.out.println("筛选后的数组" + arrayList10);

        // 数组扩容
        int[] arrList11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] arrList12 = new int[arrList11.length * 2];
        for (int i = 0; i < arrList11.length; i++) {
            arrList12[i] = arrList11[i];
        }
        System.out.println("扩容后的数组" + Arrays.toString(arrList12));

        // 冒泡排序
        int[] arrList13 = {5, 4, 6, 8, 9, 0, 1, 2, 7, 3};
        Arrays.sort(arrList13);
//        int temp = 0;
//        for (int i = 0; i < arrList13.length; i++) {
//            for (int j = 0; j < arrList13.length - i - 1; j++) {
//                if (arrList13[j] > arrList13[j + 1]) {
//                    temp = arrList13[j];
//                    arrList13[j] = arrList13[j + 1];
//                    arrList13[j + 1] = temp;
//                }
//            }
//        }
        System.out.println(Arrays.toString(arrList13));

    }
}
